//
//  Person.swift
//  Swift_base_grammar
//
//  Created by lantaiyuan on 2017/9/14.
//  Copyright © 2017年 lantaiyuan. All rights reserved.
//

import UIKit

//个人信息类
class Person: NSObject {
    var name:String?
    var age:Int = 0
    
    init(dict:[String:AnyObject]) {
        super.init()
        
        //字典转模型
        setValuesForKeys(dict)
        
        //self.name = dict["name"] as? String
        //self.age = dict["age"] as! Int
        
    }
    
    // 对象描述信息 － 有利于开发调试的
    // 类似于 java 中的 toString() 函数，在很多公司中，是在开发规范中要求必写！
    // iOS 开发时，应该在模型类中实现此属性/方法
    override var description: String {
        let keys = ["name","age"]
        
        //模型转字典  -- POST  JSON
        return "\(dictionaryWithValues(forKeys: keys))"
    }
    
    
    
    /**
     构造函数 － 建立一个`对象`
     1. 给属性分配空间
     2. 设置初始数值
     
     Swift 中构造函数`都`是 init
     */
    // 对象的属性应该是可变的, 可选项  允许变量为空,  var创建的属性默认就是nil
//    var name1:String
//    var age1:Int
    
    // `重写`默认的构造函数
    // 父类提供了这个函数，而子类需要对父类的函数进行扩展，就叫做重写
    // 特点：可以 super.xxx 调用父类本身的方法
//    override init() {
//        
//        super.init()
//        print("super.init()")
//        
//        name1 = "赵六"
//        age1 = 57
//    }
    
}
